package pe.bf.extranet.web;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import pe.bf.domain.bean.Empresa;
import pe.bf.domain.bean.Perfil;
import pe.bf.domain.bean.Tipodocumento;
import pe.bf.domain.bean.Usuario;

 
public class UsuarioServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public UsuarioServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		 
		doPost(request, response);

	}
	
	public void obtenerListaPerfiles(HttpServletRequest request){
		List<Perfil> perfiles=new ArrayList();
		perfiles.add(new Perfil(1L,"perfil 1",""));//aqui se debe obtener la lista de perfiles
		perfiles.add(new Perfil(2L,"perfil 2",""));
		perfiles.add(new Perfil(3L,"perfil 3",""));
		request.setAttribute("listaPerfiles",perfiles);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		 
		String p_accion=request.getParameter("accion");
		String p_tipodocumento=request.getParameter("txtTipoDocumento");
		String p_nrodocumento=request.getParameter("txtNroDocumento");
		String p_nombres=request.getParameter("txtNombres");
		String p_telefono=request.getParameter("txtTelefono");
		String p_email=request.getParameter("txtEmail");
		String p_clave=request.getParameter("txtClave");
//		String p_tipodocumento=request.getParameter("anexo");
 
		if(p_accion!=null){
			 if(p_accion.equals("grabar")){
				 Usuario usuario=new Usuario();
				 Tipodocumento tipoDocumento=new Tipodocumento();
				 usuario.setTipodocumento(tipoDocumento);
				 usuario.setNrodocumento(p_nrodocumento);
				 usuario.setNombres(p_nombres);
				 usuario.setTelefono(p_telefono);
				 usuario.setEmail(p_email);
//				 falta el seteo de anexo
				  String[] p_perfiles= request.getParameterValues("perfiles");
				  List<Perfil> lista_perfiles=new ArrayList();
				  for(int i=0;i<=p_perfiles.length;i++){
					  lista_perfiles.add(new Perfil());//falta obtener perfil por id p_perfiles[i]
				  }
				  
				 usuario.setPerfils(lista_perfiles);
				 usuario.setClave(p_clave);
				 
				 if(grabarUsuario(usuario)){
					 request.setAttribute("mensaje", "Usuario creado exitosamente.");
				 }else{
					 request.setAttribute("error", "Error al intentar crear el usuario.");
				 }
				 
			 }else if(p_accion.equals("baja")){
				 request.setAttribute("mensaje", "Usuario dado de baja exitosamente.");
			 }
			
			obtenerListaUsuario(request);
			obtenerListaPerfiles(request); 
			 request.getRequestDispatcher("usuarios.jsp").forward(request, response);
		}else{
			obtenerListaUsuario(request);
			obtenerListaPerfiles(request); 
			 request.getRequestDispatcher("usuarios.jsp").forward(request, response);
		}
	
		
	}
	
	
	
	
	public boolean grabarUsuario(Usuario usuario){
		
		return true;
		
	}
	
	public void obtenerListaUsuario(HttpServletRequest request){
		
		request.setAttribute("listaUsuarios", new ArrayList());// llamar a ws
		
	}

}
